# @Filename:    可以传任意参数的函数
# @Author:      王佳伟
# @Time:        2025-02-06 15:51
# @Describe:

'''
*args用于将可变数量的参数传递给函数。它用于传递非关键词的可变长度参数列表 eg:传入list
**kwargs用于传递带关键字的可变长度参数列表。我们使用带有双星的名称kwargs 。
		原因是双星允许我们传递关键字参数（以及任意数量的关键字参数）eg:传入dict
'''


def fuc(*args):
    for arg in args:
        print(arg)


fuc('One', 'Two', 'Three', 'Four')

print('-------------------------------')


def myFuc(**kwargs):
    for key, value in kwargs.items():
        print("%s == %s" % (key, value))


myFuc(first='One', mid='Two', last='Three')

print('-------------------------------')


# 同时放入*argv和**kwargs,*只能在**的前面
def myFun(*args, **kwargs):
    print("args: ", args)
    print("kwargs: ", kwargs)


myFun("geeks", "for", "geeks")
print('-------------------------------')
myFun(first="Geeks", mid="for", last="Geeks")
print('-------------------------------')
myFun('geeks', 'for', 'geeks', first="Geeks", mid="for", last="Geeks")
